Sharing in an augmented and/or virtual reality environment

ABSTRACT

In a system and method for sharing items in an augmented and/or virtual reality environment, selected virtual items may be virtually propelled using, for example, a tossing or throwing motion, to a target recipient, so that the selected item may be shared with the target recipient without direct physical and/or virtual contact with the target recipient. Movement of a user&#39;s hand may be detected and tracked, so that the intended target recipient for the shared item may be identified based on a projected trajectory of a throwing motion of the user&#39;s hand. Associations between the user and different target recipients may cause different possible target recipients to exhibit different attractive forces, or different levels of magnetism, for particular items being tossed or thrown by a user for sharing, to further differentiate between the possible target recipients, and resolve recipient ambiguity.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of, and claims priority to, U.S.application Ser. No. 15/386,614, filed on Dec. 21, 2016, which claimspriority to U.S. Provisional Application No. 62/332,314, filed on May 5,2016, the entirety of which are incorporated by reference herein.

FIELD

This application relates, generally, to item transfer and/or sharing ina virtual reality and/or augmented reality environment.

BACKGROUND

An augmented reality (AR) system and/or a virtual reality (VR) systemmay generate a three-dimensional (3D) immersive augmented and/or virtualreality environment. A user may experience this immersive environmentthrough interaction with various electronic devices such as a helmet orother head mounted device including a display, glasses or goggles. Auser may move through and interact with elements in the virtualenvironment as well as other users in the virtual space through, forexample, hand/arm gestures, manipulation of external devices operablycoupled to the head mounted device, and the like.

SUMMARY

In one aspect, a computer-implemented method may include generating, bya computing device operating in an ambient environment, a virtualenvironment; receiving, by a processor of the computing device, aselection of a virtual item by a selection device in virtual contactwith the selected virtual item; tracking movement of the selectiondevice in virtual contact with the selected virtual item, and projectinga virtual trajectory for propulsion of the selected virtual item basedon the tracked movement of the selection device in virtual contact withthe selected virtual item; identifying an intended target recipient forthe selected virtual item based on the projected virtual trajectory forthe propulsion of the selected virtual item; and sharing the selectedvirtual item with the intended target recipient.

In another aspect, a computing device may include a memory storingexecutable instructions, and a processor configured to execute theinstructions. Execution of the instructions may cause the computingdevice to generate a virtual environment; receive a selection of avirtual item by a selection device in virtual contact with the selectedvirtual item; track movement of the selection device in contact with theselected virtual item, and project a virtual trajectory for propulsionof the selected virtual item based on the tracked movement of theselected virtual item; identify an intended target recipient for theselected virtual item based on the projected virtual trajectory for thepropulsion of the selected virtual item; and share the selected virtualitem with the intended target recipient.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1D illustrate an example implementation of item sharing, orthrowing, in an augmented reality system and/or a virtual realitysystem, in accordance with implementations as described herein.

FIGS. 2A-2F and 3A-3B illustrate example implementations of item movingand/or sorting by throwing in an augmented and/or virtual realitysystem, in accordance with implementations as described herein.

FIGS. 4A-4D and 5A-5C illustrate example implementations of item sharingand/or throwing to intended target recipients based on relativeattraction forces, in accordance with implementations as describedherein.

FIGS. 6A-6E illustrate example implementations of item sharing and/orthrowing for intelligent sizing and/or placement in an augmented and/orvirtual reality system, in accordance with implementations as describedherein.

FIGS. 7A-7B and 8A-8B illustrate example implementations of item sharingand/or throwing in an augmented and/or virtual reality shoppingenvironment, in accordance with implementations as described herein.

FIG. 9 illustrates an augmented reality and/or virtual reality systemincluding a head mounted display device and a controller, in accordancewith implementations as described herein.

FIGS. 10A and 10B are perspective views of an example head mounteddisplay device, in accordance with implementations as described herein.

FIG. 11 is a block diagram of a head mounted electronic device and acontroller, in accordance with implementations as described herein.

FIG. 12 is a flowchart of a method of sharing an item by throwing in anaugmented reality system and/or a virtual reality system, in accordancewith implementations as described herein.

FIG. 13 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described herein.

DETAILED DESCRIPTION

A user may experience an augmented reality (AR) environment and/or a 3Dvirtual reality (VR) environment generated by for example, a headmounted display (HMD) device, while using, for example, hand and/or armgestures, a controller and the like to manipulate and/or interact withvirtual objects in the virtual environment. To facilitate interactionwith and/or manipulation of virtual objects in the virtual environmentin this manner, a position and/or orientation of, for example, theuser's hand, and/or a controller held by the user, may be detected, andthe movement of the user's hand and/or handheld controller in thephysical, real world environment may be tracked and translated intocorresponding movement in the virtual environment for interactionwith/manipulation of virtual objects in the virtual environment. In somesituations, a user may want to transfer to, or share an item with atarget recipient, such as, for example, another user in the virtualenvironment, another device, another virtual location for sharing,collaboration, storage and the like.

In a system and method for sharing in a virtual environment, inaccordance with implementations as described herein, a user may triggermovement of an item to be shared with a target recipient such as, forexample, another user, another virtual location, another device, and thelike, to allow for sharing of the item in the virtual environmentwithout, for example, a direct hand to hand transfer of the item, or avirtual hand to hand transfer of the item. This movement may betriggered by, for example, tossing, throwing or otherwise propelling theitem toward the target recipient. This may allow the virtual item to beshared with the target recipient without having to be in close proximityin the virtual environment and/or have direct contact in the virtualenvironment between the user, and particularly the virtual counterpartof the user in the virtual environment, and the target recipient inorder to pass the virtual item from the user to the target recipient. Insome implementations, the user may also use this type of virtual moving(e.g., tossing, throwing or otherwise propelling) to sort, arrange,store, display, and the like, various different types of items in thevirtual environment. In some implementations, the system may direct themovement of (e.g., tossing, throwing or otherwise propelling) of theitem toward a particular target recipient based on one or more rulesassociated with, for example, the item being moved (e.g., tossed,thrown, propelled), available target recipients, and the like, so thatthe successful sharing of the item with the intended recipient does notrely only on the accuracy of the user's triggered movement toward theintended target recipient. This may enhance, or increase, theprobability that the item is shared with the intended target recipient.

In a system and method for sharing in a virtual environment, inaccordance with implementations as described herein, items that wouldnot normally be propelled (i.e., tossed or thrown) in a real worldenvironment, for example, items having associated metadata, may bepropelled (i.e., tossed or thrown) to an intended target recipient totrigger another action. Items, such as, for example, files and the like,which would not normally be propelled in the real world environment, norwould their virtual representations typically be thrown in the virtualenvironment, may be propelled in order to trigger other actions in thevirtual world environment, and/or in the real world environment.

Hereinafter, simply for ease of discussion and illustration, movement ofselected item(s) from a first user to an intended target recipient forsharing, sorting, display and the like, will be described with respectto a tossing or throwing type of movement of the item by the user.However, the user may propel selected virtual item(s) in various othermanners to convey the selected item(s) to the intended target recipient.Selection of a virtual item in the virtual space may, for example, occurthrough a virtual contact in the virtual space between a designatedselection device such as, for example, the hand of a user in the virtualenvironment, hereinafter referred to as the “user's hand”, or anotherselection device and a virtual item. This type of contact in the virtualenvironment will be referred to hereinafter as virtual contact.Propelling the virtual item, i.e. virtual propelling, causes themovement of the virtual item in the virtual environment to continueafter the virtual contact between the virtual item and the user's handends, wherein the movement follows a virtual trajectory toward a targetrecipient.

The example implementation shown in FIGS. 1A-1D will be described withrespect to a first user A in a real world, physical space P, immersed ina virtual environment V, and a second user B that is virtually presentin the same virtual space V as the first user A. The first user A andthe second user B may occupy the same physical space P, or may occupyseparate physical spaces, while being present in the same virtualenvironment V. In the example shown in FIGS. 1A-1D, the virtualenvironment V is generated by an HMD 100 worn by the user, with theuser's field of view confined to the virtual environment generated bythe HMD. However, the concepts and features described below with respectto FIGS. 1A-1D may also be applied to other types of HMDs, and othertypes of virtual reality environments and/or augmented realityenvironments.

As shown in FIG. 1A, the user A may select, or retrieve, an item 200,such as, for example, a photo, a document, an audio file, a video file,a virtual object to be shared in an immersive virtual experience, andother such items. The user A may select the item 200 from, for example,a group or collection of items, using, for example, a hand gesture tointeract with a menu or directory or folder of items available to theuser A, manipulation of a controller, and the like. Once the user A hasselected the item 200, the user may choose to share the item 200 withthe user B. For example, the user A may toss, or throw, the item 200 tothe user B to share the item 200 with the user B, the user B in thisexample being the user A's intended target recipient for the item 200.For example, as shown in FIG. 1B, in some implementations, a handgesture by the user B may indicate a desire to receive the item 200,and/or a readiness to receive the item 200, from the user A, and/or mayestablish a virtual connection between the user A and the user B. Inresponse to the hand gesture by the user B, the user A may toss or throwthe item 200 to the user B, as shown in FIGS. 1C and 1D, to share theitem with the user B. The user B may then view, store, or otherwisemanipulate the received item 200.

In the example described above with respect to FIGS. 1A-1D, the user Amanipulates and throws a single item 200 to the user B, with the user Bdefining an intended target for receiving the item 200. In this example,the user B establishes a connection with the user A, and identifiesreadiness to receive the item 200 by, for example, the hand gestureshown in FIG. 1B. However, in some implementations, a connection mayalready be established between the user A and the user B, through, forexample, initiation of a shared virtual session, sharing of contactinformation and the like, establishing the user B as a possible targetrecipient for item(s) to be shared, by throwing, from the user A.

Similarly, in the example described above, the user A tosses, or throws,the item 200 to share the item 200 with the target recipient (in thisexample, the user B), in response to a gesture by the user B indicatinga desire and/or a readiness to receive the item 200. However, in someimplementations, the user A may toss, or throw, the item 200 to thetarget recipient (in this example, the user B) to share the item withthe target recipient, without a gesture or other type of indication thatthe target recipient wants to and/or is ready to receive the item 200.In this situation, the user A may share the item 200 with the targetrecipient, such as the user B, allowing the user B to access the item200.

In the example described above with respect to FIGS. 1A-1D, a positionand/or orientation of the hand of the user A, and/or of a controllerheld by the user A, may be identified, and movement of the hand of theuser A in the physical space P may be tracked and translated into acorresponding movement in the virtual environment V. Similarly, aposition and orientation of the hand of the user B may be identified,and movement of the hand of the user B in the physical space P may betracked and translated into a corresponding movement in the virtualenvironment V. Thus, the hand gesture by the user B described above withrespect to FIG. 1B may be detected, tracked, and identified as anindication of readiness to receive the item 200 at, for example, atarget recipient corresponding to the user B. Similarly, the movement ofthe hand of the user A may be detected and tracked, and a movementtrajectory, and extension of the movement trajectory, of the hand of theuser A may be identified as corresponding to a movement of item 200 fromthe user A to the user B along the extended trajectory leading to thetarget recipient corresponding to the user B.

In some implementations, movement of the user's hand may be tracked asdescribed above as the user implements a similar tossing or throwingmotion to sort and/or rearrange and/or stack and/or select one item, ora plurality of items, from a group of items. For example, as shown inFIGS. 2A-2F, a user may manipulate, sort through, re-arrange, distributeand the like, one or more items 251 through 259 of a group 250 of itemsusing, for example hand gestures including tossing or throwing gesturesas described above. In some circumstances, this sorting, re-arrangement,and the like may be done by the user A prior to sharing one or more ofthe items 251-259 with the user B as described above with respect toFIGS. 1A-1D.

In some implementations, when sorting, rearranging and the like in thismanner, the items 251-259 and particularly, the content of the items251-259 may remain private to the user A, before sharing with the targetrecipient, to maintain privacy and security of the content of the items251-259, even when the target recipient is, for example, the user B inthe shared virtual environment. In some implementations, when sorting,rearranging and the like in this manner, the items 251-259 may bevisible to both the user A and the user B, for example to facilitatearrangement, collaboration, sharing and the like.

As shown in the example illustrated in FIGS. 2A-2B, the user may selectan item from the group 250 of items, for example, item 259, for movementor sorting. Once selected, in response to a tossing or throwing gestureas described above, the selected item 259 may be tossed or thrown to,for example, a target area 269, as shown in FIGS. 2C-2D. FIG. 2C showsthat a virtual contact between the user's hand and virtual item 259,which is shown in FIG. 2B, has ended while the virtual item 259continues to move, as shown in FIG. 2D, in the virtual environment alongthe trajectory toward target area 269. The target area 269 intended bythe user to receive the selected item 259 may be determined based on,for example the tracking of the user's hand movement and associatedtrajectory, and/or other factors to be described in more detail below.Determining the intended target area in this manner, and in accordancewith implementations described herein, enables an intuitive, reliable,and efficient interaction in the virtual environment for conveying aselected virtual item toward a target area in the virtual environment.This type of interaction may be relatively intuitive to a user, as itcorresponds to a tossing or throwing type of movement of the selecteditem in the virtual environment, and as it can be can be triggered andcontrolled by a physical tossing or throwing type of movement input.This type of interaction may be relatively reliable, in that it does notrely only on the accuracy of the user's triggered movement, and may berelatively efficient, as the virtual item is propelled so that it is notrequired that the virtual contact is maintained from the moment ofselection and the start of the movement until the virtual item reachesits target. The user may continue to sort and rearrange the items251-259 in a similar manner, as in the example sequence shown in FIG.2E, in which the item 258 is selected and thrown to a positioncorresponding to a target area 268, and in the example sequence shown inFIG. 2F, in which the item 254 is selected and thrown to a positioncorresponding to a target area 264. A target area or a target recipientmay be considered to be intended if it is identified, for example basedon the tracking as described above, as the target of the trackedmovement.

In the examples shown in FIGS. 2A-2F, sorting by throwing of selecteditems is shown one item at a time, simply for ease of discussion andillustration. However, in some implementations, multiple items may beselected and thrown together, for sorting and/or sharing.

In some implementations, the sorting, rearrangement, stacking and thelike of the items 251-259 shown in FIGS. 2A-2F may be applied to sortingor distributing the items into folders, bins and the like for sharingand/or storage and/or deleting/recycling and the like. When sharingitems in this manner, the user B may, for example, access the itemshared by user A from a shared folder or other shared location.Different types of items may be sorted in a similar manner.

For example, the system may display to the user A the items 251-259 (forexample, re-arranged as described above with respect to FIGS. 2A-2F, orin a different arrangement), and may also display one or more targetrecipients, or target areas, for receiving one or more of the items tobe tossed or thrown by the user A as described above. The one or moretarget recipients, or target areas, may include, for example, a firstbin or folder 310 for collecting a first set or type of items, such as,for example, photos, a second bin or folder 320 for collecting a secondset or type of items, such as, for example, documents, a third bin orfolder 330 for collecting a third set or type of items, such as, forexample, items to be shared (for example, with the user B, or other userhaving access to the third bin or folder 330), and other bin(s) orfolder(s) as appropriate for the particular user and environment. Theone or more target recipients may also include, for example,destinations, or links to one or more websites such as, for example, asocial media link or destination 340, a publishing link or destination350, a messaging link or destination 360, and the like. The folders 310,320 and 330, and the links 350, 360 and 370 shown in FIG. 3A are justexamples of target recipients, or target areas, that may receive item(s)tossed or thrown by the user. Numerous other types and arrangements oftarget recipients, or target areas, may receive items(s) tossed orthrown by the user in the manner to be described below.

As shown in the sequence illustrated in FIG. 3B, the user may selectitem 257, and toss or throw the selected item 257 toward the firstfolder 310, for storage, or sharing, the first folder 310 being theintended target recipient of the selected item 257. In someimplementations, the user may select the first folder 310 as theintended target recipient of the selected item 257 based on, forexample, identification of a type or classification associated with theselected item 257, i.e., the user may determine that item 257 is aphoto, and choose to direct item 257 into the first folder 310 withother photos. As the user implements the toss or throw of the selecteditem 257 in the direction of the first folder 310, the system may detectand track the movement of the user's hand, may translate that motioninto a trajectory directed to the first folder 310, and may determinethat the intended target recipient for the selected item 257 is thefirst folder 310 based on the detected trajectory.

In some implementations, the intended recipient of a tossed or thrownitem may be determined based on certain associations between users,and/or attractive forces (for example, virtual forces that causeattraction in the virtual environment) associated with each of thepossible target recipients with the item being thrown and/or the userthrowing the item, in addition to, or instead of, the trajectoryassociated with the user's hand motion. A thrown item may be drawn to aparticular target recipient based on characteristics associated with theitem being thrown, and/or characteristics associated with the variouspossible target recipients. For example, a thrown item may be drawn to aparticular target recipient based on association(s) between the user andthe different target recipients, an association between the item beingthrown and the different target recipients, a commonality between theitem being thrown and the different target recipients, and other typesof attractive forces associated with the user and/or the item beingthrown and/or each of the different target recipients.

In the example shown in FIG. 4A, the items 251-259 and folders 310, 320and 330 and links 350, 360 and 370 are displayed to the user by thesystem, for manipulation by the user as described above. In thisexample, the example items 254 and 259 are photos, and the example item258 is a text document, simply for ease of illustration and explanation.Items to be displayed by the system for manipulation, sharing and thelike by the user as described herein may include other types of items,such as, for example, email messages, text messages, web pages andlinks, video files, audio files, and other types of items.

If the user selects item 254, as shown in FIG. 4B, the system may detectthat the user has selected a photo (based on, for example, a file typeassociated with the item 254, tags associated with the item 254, and thelike). In this example, the first folder 310 is designated for photos,the second folder 320 is designated for documents, and the third folder330 is designated for items to be shared. Each of the folders 310, 320and 330 may have an associated attractive force, or an associated levelof magnetism, for particular types of items. For example, in response todetecting that the selected item 254 is a photo, the first folder 310may exhibit a relatively high attractive force, or level of magnetism(for example, a virtual magnetism cause an attractive virtual force inthe virtual environment), for the selected item 254, compared to theother folders 320 and 330, causing the item 254 to be drawn to the firstfolder 310 as the item is thrown in the direction of the folders 310,320 and 330.

If the user, for example the user A, selects, for example, item 259, asshown in FIG. 4C, the system may again detect that the user has selecteda photo. In this example implementation, in addition to the systemdetecting that the selected item 259 is a photo, the system may alsodetect a tag associated with the selected item 259, for example, a tagassociated with the user B, and determine that the user A intends toshare this photo with the user B. In this example, if, for example, thethird folder 330 is a folder that is shared with the user B, then inresponse to detecting that the selected item 259 is a photo including atag associating the selected item with the user B, the third folder 330may exhibit a relatively high attractive force, or level of magnetism,for the selected item 259, compared to the other folders 310 and 320,causing the item 259 to be drawn to the third folder 330 as the item isthrown in the direction of the folders 310, 320 and 330 by the user A.The user B may then access the shared item 259 by accessing the folder330.

If the user, for example, the user A, selects, for example, the item254, as shown in FIG. 4D, the system may again detect that the user hasselected a photo. In this example, in addition to detecting that theselected item 254 is a photo, the system may also detect a tagassociated with the selected item 254, for example, a social media tag,and determine that the user A intends to share this photo on a socialmedia site. In this example, if, for example the detected social mediatag corresponds to the social media link 350 available to the user A,associating the item 254 with the social media link 350, the socialmedia link 350 may exhibit a relatively high attractive force, causingthe item 254 to be drawn to the social media site for sharing, as shownin FIG. 4D.

While the selected items in the examples described above are photos,other types of items identified by/associated with another user may bedrawn into, for example, the share folder 330 and/or to the social mediasite 350, in a similar manner. For example, other types of items, evenitems not specifically identified by/associated with another user, maybe thrown into the share folder 330 by the user A, for sharing withother user(s). The share folder 330 may be designated for access by oneother user (the user B, as in this example), or a group of other users,or for transfer to another location, and the like. Multiple sharefolders, for multiple different users, multiple different types of itemsand the like, may facilitate sharing.

In the examples shown in FIGS. 4A-4D, sorting by throwing of selecteditems into one of the folders 310/320/330 and/or sorting by throwing ofselected items and directing the selected items to one of the websitesvia one of the links 350/360/370 is shown one item at a time, simply forease of discussion and illustration. However, in some implementations,multiple items may be selected and thrown together, for sorting and/orsharing as described above.

Thus, items that are tossed or thrown by the user in the mannerdescribed above, toward an intended target recipient (for example,another user sharing the same virtual space, a folder, a bin, a sharedsite and the like), may be guided toward the intended target recipientnot just by the projected trajectory extrapolated by the system based onthe tracking of the movement of the user's hand as the user throws theitem, but also based on various associations between the item selectedand the possible target recipients. The various associations, based forexample, on a type of item, pre-existing links between the user and thepossible target recipients, requests for particular items from thepossible target recipients and the like, may be governed by a set ofpreviously defined rules. Application of these rules as an item isthrown towards a number of possible target recipients in the virtualenvironment may facilitate accurate delivery of the thrown item to theintended target recipient.

For example, as shown in FIGS. 5A-5C, multiple users A, B, C and D maybe present in the same virtual environment V. User A may wish to sharean item 500 with one of the other users B, C or D in the shared virtualenvironment V. In the example shown in FIGS. 5A-5C, the users B, C and Dare displayed by the system in relatively close proximity to each otherin the shared virtual environment V. This relatively close proximity ofthe possible target recipients (the users B, C and D) to each other maymake it difficult for the item 500 to be accurately thrown by the user Ato the intended target recipient. In this instance, the variousassociations, requests for particular items and the like, and theassociated set of previously defined rules discussed above, may increasethe likelihood, or probability, that the item 500 will be delivered tothe intended target recipient, thus facilitating the accurate deliveryof the item 500 thrown by the user A to the intended target recipient(i.e., one of the users B, C or D).

For example, the item 500 may be an email message generated by the userA in response to an email message originated by the user C. Thus, theitem 500 may include an association between the user A and the user C.As the user A throws the item 500, the item 500 may be drawn to the userC, due to the association, or link, between the item 500 and the user C,and between the user A and the user C, as shown in FIG. 5B. In someimplementations, the relatively high attractive force, or level ofmagnetism, exhibited by the user C for the item 500 in this example maycause the item 500 to be drawn to the user C, even when the extrapolatedtrajectory of the user's throw of the item 500 (based on the tracking ofthe movement of the hand of the user A) may cause some ambiguity in theintended recipient due to inaccuracy.

In another example, users A, B, C and D may share the same virtualenvironment V, and a link or association may exist between some, but notall, of the users in the same virtual environment V. For example, a linkor association may exist between the user A and the user D, but notbetween the user A and the user B, nor between the user A and the userC. This link or association between the user A and the user D may beestablished based on, for example, registration in the same session of avirtual experience, confirmation of previously exchanged contactinformation, other link or association in an application, and the like.As shown in FIG. 5C, the user A may wish to share an item 550 with theuser D, but not necessarily with the user B or the user C. Thus, theitem 550 may remain private, or concealed from, the user B and the userC as the user A shares the item 550 with the user D by tossing orthrowing the item 550 to the user D. The relatively high attractiveforce, or level of magnetism, exhibited by the user D for the item 550,coming from the user A due to the established link or associationbetween the user A and the user D, may cause the item 550 to be drawn tothe user D, even when the extrapolated trajectory of the user A's throwof the item 550 (based on the tracking of the movement of the user A'shand) may have otherwise caused some ambiguity in determining theintended recipient due to inaccuracy in the throw, relative movement ofthe user A and the user D, and the like. In some implementations, thelack of an existing association or link between the user A and the usersB and C may preclude the item 550 from being intercepted by the user Bor the user C.

In the examples shown in FIGS. 5A-5C, sharing by throwing of selecteditems is shown one item at a time, simply for ease of discussion andillustration. However, in some implementations, multiple items may beselected and thrown together, for sorting and/or sharing with otherusers.

In some implementations, a set of previously defined rules may beapplied to an item that is tossed or thrown by the user, not just tofacilitate the determination of the intended target recipient, but alsoto adjust a display of the item upon receipt of the item by the intendedtarget recipient. For example, metadata associated with the item(s) maybe taken into consideration when determining an intended targetrecipient for the item that is tossed or thrown or otherwise propelledby the user, the metadata remaining associated with the item after themovement of the item in this manner, and the metadata possibly affectingor otherwise triggering other action upon receipt of the item by theintended target recipient. For example, a user may wish to have thesystem display a selected item in a different manner in the virtualenvironment V, for further manipulation by the user, and/or for sharingwith another user. The user A may select an item 650, for example, froma group 600 of items, and may toss or throw the selected item 650 towarda display surface 660, as shown in FIG. 6A. In the example shown in FIG.6A, the display surface 660 is a wall in the virtual environment V, thedisplay surface 660 defining the intended target recipient for theselected item 650.

The selected item 650 may be drawn to the display surface 660 based notonly on the detected movement of the user's hand and associatedtrajectory, but also due to an attractive force, or level of magnetism,associated with the display surface 660 causing the item to be drawn tothe display surface 660. The attractive force, or magnetism, of aparticular display surface 660 may be defined by characteristics suchas, for example, an available virtual display area available at thedisplay surface 660, an orientation of the display surface 660, asurface texture of the display surface 660, and the like, compared tocharacteristics of the selected item 650 to be displayed on the displaysurface 660.

In some implementations, upon arriving at the display surface 660, anappearance of the selected item 650 may be changed or adjusted by thesystem, based on the pre-set rules associated with the display surface660 as the target recipient. For example, as shown in FIG. 6B, uponarriving at the display surface 660, the selected item 650 may beenlarged based on a size of the display surface 660 for furthermanipulation by the user A, and/or for sharing with and/or furthermanipulation by the user B.

In some implementations, the user A may then select another item 640from the group 600 of items, and may toss or throw the selected item 640toward the display surface 660 for display of the item 640 together withthe item 650, as shown in FIG. 6C. In some implementations, uponarriving at the display surface 660, an appearance of the selected item640, as well as an appearance of the selected item 650, may be changedor adjusted by the system, based on the pre-set rules associated withthe display surface 660 as the target recipient. For example, as shownin FIG. 6D, upon arriving at the display surface 660, a size of theselected item 640 may be enlarged, and a size of the previouslydisplayed item 650 may be adjusted to accommodate the display of theselected item 640, based on pre-set rules associated with the displaysurface 660. In some implementations, the previously displayed item 650may be replaced by the newly selected item 650 upon arrival of the newlyselected item 650 at the display surface 660, as shown in FIG. 6E.

As shown in FIGS. 6A-6E, item(s) may be drawn to a particular displaysurface, and/or characteristic(s) of items thrown by the user in thevirtual space may be adjusted upon arrival at the display surface, basedon pre-set rules associated with the display surface and the item beingthrown. The example implementation shown in FIGS. 6A-6E illustrates thedisplay of photos on a vertical surface in the virtual space V. However,other types of items such as documents and the like may also bedisplayed and adjusted in this manner. Further, items may be displayed,manipulated and the like on other display surfaces such as, for example,horizontally oriented desk or table top surfaces in the virtual space V,within virtual frames or windows displayed in the virtual space, and thelike.

In the example discussed above with respect to FIGS. 6A-6E, the exampledisplay surface 660 is a wall in the virtual environment V, with thedisplay surface 660 defining the intended target recipient for theselected item(s) 640 and 650. However, in some implementations,particularly when operating in, for example, an augmented realityenvironment, the target recipient for the selected item may be, forexample, another device, such as, for example another computing device,a television, or other type of display device. In this situation, aselected item to be shared, for example, by throwing as described above,may be intelligently sized and placed at this type of electronic displaydevice, defining the target recipient of the item to be shared. In someimplementations, sharing of an item in this manner, with an electronicdisplay device, may cause further action to be executed upon sharing theitem with the electronic display device. For example, sharing in thismanner may cause an audio file and/or a video file to be automaticallyplayed upon sharing, by throwing, of this type of file to an electronicdisplay device. Sharing, for example, an email message or a text messagein this manner may cause the shared item to be displayed and an emailapplication, or a messaging application to be launched. The sharing ofother types of items in this manner may cause subsequent action to beexecuted at the receiving device.

In some implementations, this system may be implemented to exchange orshare items such as gifts purchased by a first user from a virtual storeand shared or transmitted to a second user, or event tickets purchasedby a first user and shared or transmitted to a second user so that theuser can experience the event with the first user.

As shown in the example illustrated in FIG. 7A, the user A may select avirtual item 720, for example, a virtual cap, from a virtual display 710in a virtual store 700 generated by the system, and may toss or throwthe selected item 720 to the user B to share the selected item 720 withthe user B. Upon reaching the user B (the intended target recipient),the selected item 720 (the cap 720 in this example), may be presented tothe user B in a number of different forms. For example, in someimplementations, the user B may receive a notification that the user Ahas purchased the selected item for the user B, with associated purchaseand delivery information. In some implementations, the user B mayreceive information from the user A related to the item 720, indicatingthat the user A may be interested in the item 720, and provideinformation on how to proceed with purchase of the item 720. In someimplementations, the item 720 may be located in a use position relativeto the user B, so that the user may make an assessment of the item, forexample, for potential purchase. For example, as a result of the throwfrom the user A, the virtual cap 720 may be positioned on the user B'shead, so that the user B, allowing the user to try the item on. Variousother scenarios may also apply, in which the user A selects an item fromthe virtual store 700 and tosses or throws the selected item to the userB for consideration by the user B, or as a gift to the user B, or forfurther action by the user B, and the like.

As shown in FIG. 8A, the user A may be immersed in an event 800displayed by the system, such as, for example, a baseball game as shownin the example illustrated in FIG. 8A, or other event. In the situationshown in FIG. 8A, user B has not gained, or purchased, access to theevent 800 and thus cannot view the event 800 as user A is able to viewthe event 800. The user A may obtain access, such as purchase a ticket820, for the user B, and toss or throw the ticket to the user B. Uponreaching the user B (the intended target recipient), the user B may beimmersed in the event 800 with the user A, as shown in FIG. 8B.

As noted above, the augmented reality environment and/or virtual realityenvironment may be generated by a system including, for example, an HMD100 worn by a user, as shown in FIG. 9. As discussed above, the HMD 100may be controlled by various different types of user inputs, and theuser may interact with the augmented reality and/or virtual realityenvironment generated by the HMD 100 through various different types ofuser inputs, including, for example, hand/arm gestures including tossingor throwing gestures as described in detail above, head gestures,manipulation of the HMD 100, manipulation of a portable controller 102operably coupled to the HMD 100, and the like.

FIGS. 10A and 10B are perspective views of an example HMD, such as, forexample, the HMD 100 worn by the user in FIG. 9. FIG. 11 is a blockdiagram of an augmented reality and/or virtual reality system includinga first electronic device in communication with a second electronicdevice. The first electronic device 300 may be, for example an HMDgenerating an augmented and/or virtual reality environment, and thesecond electronic device 302 may be, for example, a controller as shownin FIG. 4.

As shown in FIGS. 10A and 10B, the example HMD may include a housing 110coupled to a frame 120, with an audio output device 130 including, forexample, speakers mounted in headphones, coupled to the frame 120. InFIG. 10B, a front portion 110 a of the housing 110 is rotated away froma base portion 110 b of the housing 110 so that some of the componentsreceived in the housing 110 are visible. A display 140 may be mounted onan interior facing side of the front portion 110 a of the housing 110.Lenses 150 may be mounted in the housing 110, between the user's eyesand the display 140 when the front portion 110 a is in the closedposition against the base portion 110 b of the housing 110. In someimplementations, the HMD 100 may include a sensing system 160 includingvarious sensors such as, for example, audio sensor(s), image/lightsensor(s), positional sensors (e.g., inertial measurement unit includinggyroscope and accelerometer), and the like. The HMD 100 may also includea control system 170 including a processor 190 and various controlsystem devices to facilitate operation of the HMD 100.

In some implementations, the HMD 100 may include a camera 180 to capturestill and moving images. The images captured by the camera 180 may beused to help track a physical position of the user and/or the controller102, and/or may be displayed to the user on the display 140 in a passthrough mode. In some implementations, the HMD 100 may include a gazetracking device 165 including one or more image sensors 165A to detectand track an eye gaze of the user. In some implementations, the HMD 100may be configured so that the detected gaze is processed as a user inputto be translated into a corresponding interaction in the augmentedreality and/or virtual reality environment.

As shown in FIG. 11, the first electronic device 300 may include asensing system 370 and a control system 380, which may be similar to thesensing system 160 and the control system 170, respectively, shown inFIGS. 10A and 10B. The sensing system 370 may include, for example, alight sensor, an audio sensor, an image sensor, a distance/proximitysensor, a positional sensor, and/or other sensors and/or differentcombination(s) of sensors, including, for example, an image sensorpositioned to detect and track the user's eye gaze, such as the gazetracking device 165 shown in FIG. 5B. The control system 380 mayinclude, for example, a power/pause control device, audio and videocontrol devices, an optical control device, a transition control device,and/or other such devices and/or different combination(s) of devices.The sensing system 370 and/or the control system 380 may include more,or fewer, devices, depending on a particular implementation, and mayhave a different physical arrangement that shown. The first electronicdevice 300 may also include a processor 390 in communication with thesensing system 370 and the control system 380, a memory 385, and acommunication module 395 providing for communication between the firstelectronic device 300 and another, external device, such as, forexample, the second electronic device 302.

The second electronic device 302 may include a communication module 306providing for communication between the second electronic device 302 andanother, external device, such as, for example, the first electronicdevice 300. The second electronic device 302 may include a sensingsystem 304 including an image sensor and an audio sensor, such as isincluded in, for example, a camera and microphone, an inertialmeasurement unit, a touch sensor such as is included in a touchsensitive surface of a controller, or smartphone, and other such sensorsand/or different combination(s) of sensors. A processor 309 may be incommunication with the sensing system 304 and a control unit 305 of thesecond electronic device 302, the control unit 305 having access to amemory 308 and controlling overall operation of the second electronicdevice 302.

A method 1200 of sharing an item by throwing in an augmented realityenvironment and/or a virtual reality environment, in accordance withimplementations described herein, is shown in FIG. 12.

A user may initiate an augmented reality experience and/or a virtualreality experience using, for example, a computing device such as, forexample, a system including a head mounted display device as describedabove with respect to FIGS. 9-11, to generate the augmented realityand/or virtual reality environment (block 1210). The user may retrieveone or more items for sorting or sharing by throwing (block 1220). Whenit is detected that one (or more) of the retrieved item(s) has beenselected for sorting or sharing by throwing, for example, as describedabove with respect to FIGS. 2A-2F, (block 1230), the system may detectpossible target recipients for the selected item(s), for example, asdescribed above with respect to FIGS. 4A-8B (block 1240). The system maythen detect whether or not attractive forces are associated with theidentified possible target recipients, for example, as described abovewith respect to FIGS. 4A-5C (block 1250).

If attractive forces are associated with one or more of the identifiedpossible target recipients (block 1250), the system may identify theintended target recipient for the thrown item(s) (block 1270) based on aprojected throw trajectory determined based on a six degree of freedomtracking of the user's hand as the item is thrown in the virtualenvironment, for example, as described above with respect to FIGS.1A-8B, together with a comparison of the attractive force(s) associatedwith the possible target recipients. If it is determined that attractiveforces are not associated with one or more of the identified possibletarget recipients (block 1250), the system may identify the intendedtarget recipient for the thrown item(s) (block 1275) based on aprojected throw trajectory. The projected throw trajectory may bedetermined based on the six degree of freedom tracking of the user'shand as the item is thrown in the virtual environment, for example, asdescribed above with respect to FIGS. 1A-8B (block 1265). The selecteditem(s) may then be shared with the intended target recipient (asidentified at block 1270 or block 1275) (block 1280).

The process may continue until it is determined that the currentaugmented reality and/or virtual reality experience has been terminated(block 1290).

FIG. 13 shows an example of a computer device 1300 and a mobile computerdevice 1350, which may be used with the techniques described here.Computing device 1300 includes a processor 1302, memory 1304, a storagedevice 1306, a high-speed interface 1308 connecting to memory 1304 andhigh-speed expansion ports 1310, and a low speed interface 1312connecting to low speed bus 1314 and storage device 1306. Each of thecomponents 1302, 1304, 1306, 1308, 1310, and 1312, are interconnectedusing various busses, and may be mounted on a common motherboard or inother manners as appropriate. The processor 1302 can processinstructions for execution within the computing device 1300, includinginstructions stored in the memory 1304 or on the storage device 1306 todisplay graphical information for a GUI on an external input/outputdevice, such as display 1316 coupled to high speed interface 1308. Inother implementations, multiple processors and/or multiple buses may beused, as appropriate, along with multiple memories and types of memory.Also, multiple computing devices 1300 may be connected, with each deviceproviding portions of the necessary operations (e.g., as a server bank,a group of blade servers, or a multi-processor system).

The memory 1304 stores information within the computing device 1300. Inone implementation, the memory 1304 is a volatile memory unit or units.In another implementation, the memory 1304 is a non-volatile memory unitor units. The memory 1304 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 1306 is capable of providing mass storage for thecomputing device 1300. In one implementation, the storage device 1306may be or contain a computer-readable medium, such as a floppy diskdevice, a hard disk device, an optical disk device, or a tape device, aflash memory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 1304, the storage device1306, or memory on processor 1302.

The high speed controller 1308 manages bandwidth-intensive operationsfor the computing device 1300, while the low speed controller 1312manages lower bandwidth-intensive operations. Such allocation offunctions is exemplary only. In one implementation, the high-speedcontroller 1308 is coupled to memory 1304, display 1316 (e.g., through agraphics processor or accelerator), and to high-speed expansion ports1310, which may accept various expansion cards (not shown). In theimplementation, low-speed controller 1312 is coupled to storage device1306 and low-speed expansion port 1314. The low-speed expansion port,which may include various communication ports (e.g., USB, Bluetooth,Ethernet, wireless Ethernet) may be coupled to one or more input/outputdevices, such as a keyboard, a pointing device, a scanner, or anetworking device such as a switch or router, e.g., through a networkadapter.

The computing device 1300 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 1320, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 1324. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 1322. Alternatively, components from computing device 1300 maybe combined with other components in a mobile device (not shown), suchas device 1350. Each of such devices may contain one or more ofcomputing device 1300, 1350, and an entire system may be made up ofmultiple computing devices 1300, 1350 communicating with each other.

Computing device 1350 includes a processor 1352, memory 1364, aninput/output device such as a display 1354, a communication interface1366, and a transceiver 1368, among other components. The device 1350may also be provided with a storage device, such as a microdrive orother device, to provide additional storage. Each of the components1350, 1352, 1364, 1354, 1366, and 1368, are interconnected using variousbuses, and several of the components may be mounted on a commonmotherboard or in other manners as appropriate.

The processor 1352 can execute instructions within the computing device1350, including instructions stored in the memory 1364. The processormay be implemented as a chipset of chips that include separate andmultiple analog and digital processors. The processor may provide, forexample, for coordination of the other components of the device 1350,such as control of user interfaces, applications run by device 1350, andwireless communication by device 1350.

Processor 1352 may communicate with a user through control interface1358 and display interface 1356 coupled to a display 1354. The display1354 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid CrystalDisplay) or an OLED (Organic Light Emitting Diode) display, or otherappropriate display technology. The display interface 1356 may compriseappropriate circuitry for driving the display 1354 to present graphicaland other information to a user. The control interface 1358 may receivecommands from a user and convert them for submission to the processor1352. In addition, an external interface 1362 may be provide incommunication with processor 1352, so as to enable near areacommunication of device 1350 with other devices. External interface 1362may provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces may also be used.

The memory 1364 stores information within the computing device 1350. Thememory 1364 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 1374 may also be provided andconnected to device 1350 through expansion interface 1372, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 1374 may provide extra storage spacefor device 1350, or may also store applications or other information fordevice 1350. Specifically, expansion memory 1374 may includeinstructions to carry out or supplement the processes described above,and may include secure information also. Thus, for example, expansionmemory 1374 may be provide as a security module for device 1350, and maybe programmed with instructions that permit secure use of device 1350.In addition, secure applications may be provided via the SIMM cards,along with additional information, such as placing identifyinginformation on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 1364, expansionmemory 1374, or memory on processor 1352, that may be received, forexample, over transceiver 1368 or external interface 1362.

Device 1350 may communicate wirelessly through communication interface1366, which may include digital signal processing circuitry wherenecessary. Communication interface 1366 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 1368. In addition, short-range communication may occur, suchas using a Bluetooth, Wi-Fi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 1370 mayprovide additional navigation- and location-related wireless data todevice 1350, which may be used as appropriate by applications running ondevice 1350.

Device 1350 may also communicate audibly using audio codec 1360, whichmay receive spoken information from a user and convert it to usabledigital information. Audio codec 1360 may likewise generate audiblesound for a user, such as through a speaker, e.g., in a handset ofdevice 1350. Such sound may include sound from voice telephone calls,may include recorded sound (e.g., voice messages, music files, etc.) andmay also include sound generated by applications operating on device1350.

The computing device 1350 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 1380. It may also be implemented as part of a smartphone 1382, personal digital assistant, or other similar mobile device.

Various implementations of the systems and techniques described here canbe reali13ed in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

In some implementations, the computing devices depicted in FIG. 13 caninclude sensors that interface with a virtual reality (VR headset/HMDdevice 1390). For example, one or more sensors included on a computingdevice 1350 or other computing device depicted in FIG. 13, can provideinput to VR headset 1390 or in general, provide input to a VR space. Thesensors can include, but are not limited to, a touchscreen,accelerometers, gyroscopes, pressure sensors, biometric sensors,temperature sensors, humidity sensors, and ambient light sensors. Thecomputing device 1350 can use the sensors to determine an absoluteposition and/or a detected rotation of the computing device in the VRspace that can then be used as input to the VR space. For example, thecomputing device 1350 may be incorporated into the VR space as a virtualobject, such as a controller, a laser pointer, a keyboard, a weapon,etc. Positioning of the computing device/virtual object by the user whenincorporated into the VR space can allow the user to position thecomputing device so as to view the virtual object in certain manners inthe VR space. For example, if the virtual object represents a laserpointer, the user can manipulate the computing device as if it were anactual laser pointer. The user can move the computing device left andright, up and down, in a circle, etc., and use the device in a similarfashion to using a laser pointer.

In some implementations, one or more input devices included on, orconnect to, the computing device 1350 can be used as input to the VRspace. The input devices can include, but are not limited to, atouchscreen, a keyboard, one or more buttons, a trackpad, a touchpad, apointing device, a mouse, a trackball, a joystick, a camera, amicrophone, earphones or buds with input functionality, a gamingcontroller, or other connectable input device. A user interacting withan input device included on the computing device 1350 when the computingdevice is incorporated into the VR space can cause a particular actionto occur in the VR space.

In some implementations, a touchscreen of the computing device 1350 canbe rendered as a touchpad in VR space. A user can interact with thetouchscreen of the computing device 1350. The interactions are rendered,in VR headset 1390 for example, as movements on the rendered touchpad inthe VR space. The rendered movements can control virtual objects in theVR space.

In some implementations, one or more output devices included on thecomputing device 1350 can provide output and/or feedback to a user ofthe VR headset 1390 in the VR space. The output and feedback can bevisual, tactical, or audio. The output and/or feedback can include, butis not limited to, vibrations, turning on and off or blinking and/orflashing of one or more lights or strobes, sounding an alarm, playing achime, playing a song, and playing of an audio file. The output devicescan include, but are not limited to, vibration motors, vibration coils,piezoelectric devices, electrostatic devices, light emitting diodes(LEDs), strobes, and speakers.

In some implementations, the computing device 1350 may appear as anotherobject in a computer-generated, 3D environment. Interactions by the userwith the computing device 1350 (e.g., rotating, shaking, touching atouchscreen, swiping a finger across a touch screen) can be interpretedas interactions with the object in the VR space. In the example of thelaser pointer in a VR space, the computing device 1350 appears as avirtual laser pointer in the computer-generated, 3D environment. As theuser manipulates the computing device 1350, the user in the VR spacesees movement of the laser pointer. The user receives feedback frominteractions with the computing device 1350 in the VR environment on thecomputing device 1350 or on the VR headset 1390.

In some implementations, a computing device 1350 may include atouchscreen. For example, a user can interact with the touchscreen in aparticular manner that can mimic what happens on the touchscreen withwhat happens in the VR space. For example, a user may use apinching-type motion to zoom content displayed on the touchscreen. Thispinching-type motion on the touchscreen can cause information providedin the VR space to be zoomed. In another example, the computing devicemay be rendered as a virtual book in a computer-generated, 3Denvironment. In the VR space, the pages of the book can be displayed inthe VR space and the swiping of a finger of the user across thetouchscreen can be interpreted as turning/flipping a page of the virtualbook. As each page is turned/flipped, in addition to seeing the pagecontents change, the user may be provided with audio feedback, such asthe sound of the turning of a page in a book.

In some implementations, one or more input devices in addition to thecomputing device (e.g., a mouse, a keyboard) can be rendered in acomputer-generated, 3D environment. The rendered input devices (e.g.,the rendered mouse, the rendered keyboard) can be used as rendered inthe VR space to control objects in the VR space.

Computing device 1300 is intended to represent various forms of digitalcomputers and devices, including, but not limited to laptops, desktops,workstations, personal digital assistants, servers, blade servers,mainframes, and other appropriate computers. Computing device 1350 isintended to represent various forms of mobile devices, such as personaldigital assistants, cellular telephones, smart phones, and other similarcomputing devices. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the specification.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

What is claimed is:
 1. A computer-implemented method, comprising:receiving, by a processor of a computing device operating in an ambientenvironment, a selection of a virtual item by a selection device invirtual contact with the selected virtual item; projecting a virtualtrajectory for movement of the selected virtual item based on a detectedmovement of the selection device in virtual contact with the selectedvirtual item; identifying a target recipient for the selected virtualitem in the ambient environment, including: detecting at least onepossible recipient in the ambient environment; detecting an attractiveforce associated with each of the at least one possible recipient in theambient environment; and identifying the target recipient based on theprojected virtual trajectory for the movement of the selected virtualitem and the detected attractive force associated with each of the atleast one possible recipient; and sharing the selected virtual item withthe identified target recipient.
 2. The method of claim 1, whereinsharing the selected virtual item includes superimposing a virtual imageof the selected virtual item on the identified target recipient (tryingon the virtual item).
 3. The method of claim 1, wherein sharing theselected virtual item includes suggesting the selected virtual item tothe identified target recipient for consideration by the identifiedtarget recipient.
 4. The method of claim 1, wherein sharing the selectedvirtual item includes sharing purchase information for the selectedvirtual item with the identified target recipient.
 5. The method ofclaim 1, wherein receiving the selection of the virtual item includesreceiving a selection of a virtual event, and sharing the selectedvirtual item includes sharing access to (admission, entrance?) theselected virtual event with the identified target recipient.
 6. Themethod of claim 1, wherein detecting at least one possible recipientincludes detecting a plurality of possible recipients, and detecting theattractive force includes detecting the attractive force associated witheach of the plurality of possible recipients.
 7. The method of claim 6,further comprising tracking movement of the selection device in virtualcontact with the selected virtual item, including: tracking a six degreeof freedom movement of a hand of a user through a throwing movement ofthe hand of the user; projecting the virtual trajectory for the selectedvirtual item based on the tracked throwing movement of the hand of theuser; and identifying the intended target recipient based on anextension of the projected virtual trajectory to one of a plurality ofpossible recipients.
 8. The method of claim 7, wherein detecting theattractive force includes detecting the attractive force based on acommonality between a characteristic of the selected virtual item and acharacteristic of each of the plurality of possible recipients includingdetecting at least one of: an existing association with one or more ofthe plurality of possible recipients; an existing share request from oneor more of the plurality of possible recipients; a sharing history withone or more of the plurality of possible recipients; or a common formattype with one or more of the plurality of possible recipients
 9. Themethod of claim 7, wherein identifying the target recipient from theplurality of possible recipients in the virtual environment includesidentifying the target recipient from a plurality of additional users ina shared environment; and detecting the attractive force associated witheach of the plurality of possible recipients in the shared environmentincludes detecting the attractive force associated with each possiblerecipient based on at least one of: an established association betweenthe user and the possible recipient; or a request for sharing of thecontent of the virtual item by the possible recipient.
 10. The method ofclaim 1, wherein identifying the target recipient includes identifyingthe target recipient from a plurality of virtual display areas in thevirtual environment, each of the plurality of virtual display areasbeing configured to receive a virtual item for display, the methodfurther comprising: detecting the attractive force associated with eachof the plurality of display areas based on a comparison of at least onecharacteristic of the selected virtual item and at least onecharacteristic of the respective virtual display area, the at least onecharacteristic of the respective virtual display area including at leastone of a virtual size of the virtual display area, a virtual orientationof the virtual display area, or a virtual texture of the of the virtualdisplay area; identifying a target display area of the plurality ofvirtual display areas as the target recipient for display of theselected virtual item based on the projected virtual trajectory for theselected virtual item and the attractive force associated with each ofthe plurality of virtual display areas; and displaying content of theselected virtual item at the target display area identified as thetarget recipient.
 11. The method of claim 10, wherein displaying thecontent of the selected virtual item at the target display areaidentified as the target recipient includes at least one of: re-sizing avirtual item previously displayed at the target display area identifiedas the target recipient to accommodate display of the selected virtualitem at the target display area identified as the target recipient; oreliminating a virtual item previously displayed at the target displayarea identified as the target recipient to accommodate display of theselected virtual item at the target display area identified as thetarget recipient.
 12. The method of claim 1, wherein identifying thetarget recipient includes identifying the target recipient from aplurality of virtual storage areas in the virtual environment, each ofthe plurality of virtual storage areas being configured to receive avirtual item for storage, the method further comprising: detecting therespective attractive force associated with each of the plurality ofvirtual storage areas based on a comparison of at least onecharacteristic of the selected virtual item and at least onecharacteristic of the respective virtual storage area, the at least onecharacteristic of the respective virtual storage area including at leastone of an item classification type, a share setting, or a designateddestination; identifying a target storage area of the plurality ofvirtual storage areas to receive the selected virtual item based on theprojected virtual trajectory for the selected virtual item and therespective attractive force associated with each of the plurality ofvirtual storage areas; and sharing the content of the selected virtualitem in the target storage area identified as the target recipient. 13.A computer-implemented method, comprising: receiving, by a processor ofa computing device operating in an ambient environment, a selection of avirtual item by a selection device in virtual contact with the selectedvirtual item, the selected virtual item representing a virtual event;projecting a virtual trajectory for movement of the selected virtualitem based on a detected movement of the selection device in virtualcontact with the selected virtual item; identifying a target recipientfor the selected virtual item in a shared environment, including:detecting at least one possible recipient in the shared environment;identifying the target recipient based on the projected virtualtrajectory for the movement of the selected virtual item and anattractive force associated with the at least one possible recipient;and sharing access to the selected virtual event represented by theselected virtual item with the identified target recipient.
 14. Themethod of claim 13, wherein detecting the at least one possiblerecipient includes detecting the at least one possible recipient from aplurality of possible recipients in the shared environment, andidentifying the target recipient includes identifying the targetrecipient based on the projected virtual trajectory and the respectiveattractive forces associated with each of the plurality of possiblerecipients in the shared environment.
 15. The method of claim 14,wherein identifying the target recipient includes detecting theattractive forces associated with each of the plurality of possiblerecipients based on at least one of: an established association betweenthe user and each of the plurality of possible recipients; a request forsharing of the content of the virtual item one or more of the pluralityof possible recipients; or a sharing history with one or more of theplurality of possible recipients.
 16. The method of claim 14, furthercomprising tracking movement of the selection device in virtual contactwith the selected virtual item, including: tracking a six degree offreedom movement of a hand of a user through a throwing movement of thehand of the user; projecting the virtual trajectory for the selectedvirtual item based on the tracked throwing movement of the hand of theuser; and identifying the intended target recipient based on anextension of the projected virtual trajectory to one of a plurality ofpossible recipients.
 17. A computer-implemented method, comprising:receiving, by a processor of a computing device operating in an ambientenvironment, a selection of a virtual item by a selection device invirtual contact with the selected virtual item; projecting a virtualtrajectory for movement of the selected virtual item based on a detectedmovement of the selection device in virtual contact with the selectedvirtual item; identifying a target recipient for the selected virtualitem in a shared environment, including: detecting at least one possiblerecipient in the shared environment; identifying the target recipientbased on the projected virtual trajectory for the movement of theselected virtual item and an attractive force associated with the atleast one possible recipient; and sharing the selected virtual item withthe identified target recipient, including sharing content associatedwith the selected virtual item for further action by the identifiedtarget recipient.
 18. The method of claim 17, wherein sharing thecontent associated with the selected virtual item includes at least oneof: superimposing a virtual image of the selected virtual item on theidentified target recipient; suggesting the selected virtual item to theidentified target recipient for consideration by the identified targetrecipient; or sharing purchase information for the selected virtual itemwith the identified target recipient.